//===============================================================================
// Microsoft Architecture Strategy Team
// LitwareHR - SaaS Sample Application
//===============================================================================
// Copyright  Microsoft Corporation.  All rights reserved.
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY
// OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
// LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
// FITNESS FOR A PARTICULAR PURPOSE.
//===============================================================================
// The example companies, organizations, products, domain names,
// e-mail addresses, logos, people, places, and events depicted
// herein are fictitious.  No association with any real company,
// organization, product, domain name, email address, logo, person,
// places, or events is intended or should be inferred.
//===============================================================================


//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:2.0.50727.1433
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace Shp.Runtime.Sitka.ServiceGateway.CloudDB {
    using System.Runtime.Serialization;
    using System;
    
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Scope", Namespace="http://schemas.microsoft.com/stratus/2008/03/")]
    [System.SerializableAttribute()]
    public partial struct Scope : System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        private string AuthorityIdField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string ContainerIdField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string EntityIdField;
        
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public string AuthorityId {
            get {
                return this.AuthorityIdField;
            }
            set {
                if ((object.ReferenceEquals(this.AuthorityIdField, value) != true)) {
                    this.AuthorityIdField = value;
                    this.RaisePropertyChanged("AuthorityId");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string ContainerId {
            get {
                return this.ContainerIdField;
            }
            set {
                if ((object.ReferenceEquals(this.ContainerIdField, value) != true)) {
                    this.ContainerIdField = value;
                    this.RaisePropertyChanged("ContainerId");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string EntityId {
            get {
                return this.EntityIdField;
            }
            set {
                if ((object.ReferenceEquals(this.EntityIdField, value) != true)) {
                    this.EntityIdField = value;
                    this.RaisePropertyChanged("EntityId");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="FlexibleEntity", Namespace="http://schemas.microsoft.com/stratus/2008/03/")]
    [System.SerializableAttribute()]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(Shp.Runtime.Sitka.ServiceGateway.CloudDB.Authority))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(Shp.Runtime.Sitka.ServiceGateway.CloudDB.Container))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(Shp.Runtime.Sitka.ServiceGateway.CloudDB.Entity))]
    public partial class FlexibleEntity : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string IdField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string KindField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private System.Collections.Generic.List<Shp.Runtime.Sitka.ServiceGateway.CloudDB.Property> PropertiesField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private long VersionField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Id {
            get {
                return this.IdField;
            }
            set {
                if ((object.ReferenceEquals(this.IdField, value) != true)) {
                    this.IdField = value;
                    this.RaisePropertyChanged("Id");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Kind {
            get {
                return this.KindField;
            }
            set {
                if ((object.ReferenceEquals(this.KindField, value) != true)) {
                    this.KindField = value;
                    this.RaisePropertyChanged("Kind");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.Generic.List<Shp.Runtime.Sitka.ServiceGateway.CloudDB.Property> Properties {
            get {
                return this.PropertiesField;
            }
            set {
                if ((object.ReferenceEquals(this.PropertiesField, value) != true)) {
                    this.PropertiesField = value;
                    this.RaisePropertyChanged("Properties");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public long Version {
            get {
                return this.VersionField;
            }
            set {
                if ((this.VersionField.Equals(value) != true)) {
                    this.VersionField = value;
                    this.RaisePropertyChanged("Version");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Authority", Namespace="http://schemas.microsoft.com/stratus/2008/03/")]
    [System.SerializableAttribute()]
    public partial class Authority : Shp.Runtime.Sitka.ServiceGateway.CloudDB.FlexibleEntity {
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Container", Namespace="http://schemas.microsoft.com/stratus/2008/03/")]
    [System.SerializableAttribute()]
    public partial class Container : Shp.Runtime.Sitka.ServiceGateway.CloudDB.FlexibleEntity {
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Entity", Namespace="http://schemas.microsoft.com/stratus/2008/03/")]
    [System.SerializableAttribute()]
    public partial class Entity : Shp.Runtime.Sitka.ServiceGateway.CloudDB.FlexibleEntity {
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Property", Namespace="http://schemas.microsoft.com/stratus/2008/03/")]
    [System.SerializableAttribute()]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(Shp.Runtime.Sitka.ServiceGateway.CloudDB.Scope))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(Shp.Runtime.Sitka.ServiceGateway.CloudDB.FlexibleEntity))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(System.Collections.Generic.List<Shp.Runtime.Sitka.ServiceGateway.CloudDB.Property>))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(Shp.Runtime.Sitka.ServiceGateway.CloudDB.Authority))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(Shp.Runtime.Sitka.ServiceGateway.CloudDB.Container))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(Shp.Runtime.Sitka.ServiceGateway.CloudDB.Entity))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(Shp.Runtime.Sitka.ServiceGateway.CloudDB.Error))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(Shp.Runtime.Sitka.ServiceGateway.CloudDB.ErrorCodes))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(System.Collections.Generic.List<Shp.Runtime.Sitka.ServiceGateway.CloudDB.FlexibleEntity>))]
    public partial struct Property : System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        private string NameField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private object ValueField;
        
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public string Name {
            get {
                return this.NameField;
            }
            set {
                if ((object.ReferenceEquals(this.NameField, value) != true)) {
                    this.NameField = value;
                    this.RaisePropertyChanged("Name");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public object Value {
            get {
                return this.ValueField;
            }
            set {
                if ((object.ReferenceEquals(this.ValueField, value) != true)) {
                    this.ValueField = value;
                    this.RaisePropertyChanged("Value");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Error", Namespace="http://schemas.microsoft.com/stratus/2008/03/")]
    [System.SerializableAttribute()]
    public partial class Error : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string MessageField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private Shp.Runtime.Sitka.ServiceGateway.CloudDB.ErrorCodes StatusCodeField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Message {
            get {
                return this.MessageField;
            }
            set {
                if ((object.ReferenceEquals(this.MessageField, value) != true)) {
                    this.MessageField = value;
                    this.RaisePropertyChanged("Message");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public Shp.Runtime.Sitka.ServiceGateway.CloudDB.ErrorCodes StatusCode {
            get {
                return this.StatusCodeField;
            }
            set {
                if ((this.StatusCodeField.Equals(value) != true)) {
                    this.StatusCodeField = value;
                    this.RaisePropertyChanged("StatusCode");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ErrorCodes", Namespace="http://schemas.microsoft.com/stratus/2008/03/")]
    public enum ErrorCodes : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Success = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        EntityNotFound = 1001,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        EntityExists = 1002,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        InvalidEntity = 1003,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        InvalidContainerSpecification = 2001,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        InvalidContainerQueryRequest = 4001,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        InvalidQueryDefinition = 4002,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        ServiceNotAvailable = 5001,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        OperationTimeout = 5002,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        InvalidRequest = 6001,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        InvalidScope = 6002,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        UnknownError = 8001,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        UnexpectedError = 8002,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
    [System.ServiceModel.ServiceContractAttribute(Namespace = "http://schemas.microsoft.com/stratus/2008/03/", ConfigurationName = "Shp.Runtime.Sitka.ServiceGateway.CloudDB.IStratusSoapService")]
    public interface IStratusSoapService {
        
        [System.ServiceModel.OperationContractAttribute(Action="http://schemas.microsoft.com/stratus/2008/03/IStratusSoapService/Create", ReplyAction="http://schemas.microsoft.com/stratus/2008/03/IStratusSoapService/CreateResponse")]
        [System.ServiceModel.FaultContractAttribute(typeof(Shp.Runtime.Sitka.ServiceGateway.CloudDB.Error), Action="http://schemas.microsoft.com/stratus/2008/03/IStratusSoapService/CreateErrorFault" +
            "", Name="Error")]
        Shp.Runtime.Sitka.ServiceGateway.CloudDB.Scope Create(Shp.Runtime.Sitka.ServiceGateway.CloudDB.Scope scope, Shp.Runtime.Sitka.ServiceGateway.CloudDB.FlexibleEntity entity);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://schemas.microsoft.com/stratus/2008/03/IStratusSoapService/Get", ReplyAction="http://schemas.microsoft.com/stratus/2008/03/IStratusSoapService/GetResponse")]
        [System.ServiceModel.FaultContractAttribute(typeof(Shp.Runtime.Sitka.ServiceGateway.CloudDB.Error), Action="http://schemas.microsoft.com/stratus/2008/03/IStratusSoapService/GetErrorFault", Name="Error")]
        Shp.Runtime.Sitka.ServiceGateway.CloudDB.FlexibleEntity Get(Shp.Runtime.Sitka.ServiceGateway.CloudDB.Scope scope);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://schemas.microsoft.com/stratus/2008/03/IStratusSoapService/Update", ReplyAction="http://schemas.microsoft.com/stratus/2008/03/IStratusSoapService/UpdateResponse")]
        [System.ServiceModel.FaultContractAttribute(typeof(Shp.Runtime.Sitka.ServiceGateway.CloudDB.Error), Action="http://schemas.microsoft.com/stratus/2008/03/IStratusSoapService/UpdateErrorFault" +
            "", Name="Error")]
        Shp.Runtime.Sitka.ServiceGateway.CloudDB.FlexibleEntity Update(Shp.Runtime.Sitka.ServiceGateway.CloudDB.Scope scope, Shp.Runtime.Sitka.ServiceGateway.CloudDB.FlexibleEntity entity);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://schemas.microsoft.com/stratus/2008/03/IStratusSoapService/Delete", ReplyAction="http://schemas.microsoft.com/stratus/2008/03/IStratusSoapService/DeleteResponse")]
        [System.ServiceModel.FaultContractAttribute(typeof(Shp.Runtime.Sitka.ServiceGateway.CloudDB.Error), Action="http://schemas.microsoft.com/stratus/2008/03/IStratusSoapService/DeleteErrorFault" +
            "", Name="Error")]
        void Delete(Shp.Runtime.Sitka.ServiceGateway.CloudDB.Scope scope);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://schemas.microsoft.com/stratus/2008/03/IStratusSoapService/Query", ReplyAction="http://schemas.microsoft.com/stratus/2008/03/IStratusSoapService/QueryResponse")]
        [System.ServiceModel.FaultContractAttribute(typeof(Shp.Runtime.Sitka.ServiceGateway.CloudDB.Error), Action="http://schemas.microsoft.com/stratus/2008/03/IStratusSoapService/QueryErrorFault", Name="Error")]
        System.Collections.Generic.List<Shp.Runtime.Sitka.ServiceGateway.CloudDB.FlexibleEntity> Query(Shp.Runtime.Sitka.ServiceGateway.CloudDB.Scope scope, [System.ServiceModel.MessageParameterAttribute(Name="query")] string query1);
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
    public interface IStratusSoapServiceChannel : Shp.Runtime.Sitka.ServiceGateway.CloudDB.IStratusSoapService, System.ServiceModel.IClientChannel {
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
    public partial class StratusSoapServiceClient : System.ServiceModel.ClientBase<Shp.Runtime.Sitka.ServiceGateway.CloudDB.IStratusSoapService>, Shp.Runtime.Sitka.ServiceGateway.CloudDB.IStratusSoapService {
        
        public StratusSoapServiceClient() {
        }
        
        public StratusSoapServiceClient(string endpointConfigurationName) : 
                base(endpointConfigurationName) {
        }
        
        public StratusSoapServiceClient(string endpointConfigurationName, string remoteAddress) : 
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public StratusSoapServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public StratusSoapServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(binding, remoteAddress) {
        }
        
        public Shp.Runtime.Sitka.ServiceGateway.CloudDB.Scope Create(Shp.Runtime.Sitka.ServiceGateway.CloudDB.Scope scope, Shp.Runtime.Sitka.ServiceGateway.CloudDB.FlexibleEntity entity) {
            return base.Channel.Create(scope, entity);
        }
        
        public Shp.Runtime.Sitka.ServiceGateway.CloudDB.FlexibleEntity Get(Shp.Runtime.Sitka.ServiceGateway.CloudDB.Scope scope) {
            return base.Channel.Get(scope);
        }
        
        public Shp.Runtime.Sitka.ServiceGateway.CloudDB.FlexibleEntity Update(Shp.Runtime.Sitka.ServiceGateway.CloudDB.Scope scope, Shp.Runtime.Sitka.ServiceGateway.CloudDB.FlexibleEntity entity) {
            return base.Channel.Update(scope, entity);
        }
        
        public void Delete(Shp.Runtime.Sitka.ServiceGateway.CloudDB.Scope scope) {
            base.Channel.Delete(scope);
        }
        
        public System.Collections.Generic.List<Shp.Runtime.Sitka.ServiceGateway.CloudDB.FlexibleEntity> Query(Shp.Runtime.Sitka.ServiceGateway.CloudDB.Scope scope, string query1) {
            return base.Channel.Query(scope, query1);
        }
    }
}
